#ifndef GPU_STITCH_HPP
#define GPU_STITCH_HPP 1

#include <vector>
#include <iostream>
#include <opencv2/core.hpp>

using namespace std;
using namespace cv;

namespace GpuStitch
{
	__declspec(dllexport)
		struct StitchParams
	{
		StitchParams()
		{
			interpolate = true;
			alphaBlend = 2;
			expBlendValue = 50;
			shift = 0;
			hardShift = false;
		}

		bool interpolate;
		int alphaBlend;
		float expBlendValue;
		int shift;
		bool hardShift;
	};

	__declspec(dllexport)
		Mat stitch_gpu(
			vector<Mat> matSrc,
			vector<Mat> matHmg,
			StitchParams params
		);
}

#endif